package main

import (
	"fmt"
	"os"

	"game-simple/internal/framework/system/services"
	"game-simple/internal/infrastructure/config"
	"game-simple/internal/infrastructure/database"
)

// seedSequenceRules 命令：初始化编号规则种子数据
func seedSequenceRules(configPath string) {
	if err := config.LoadConfig(configPath); err != nil {
		fmt.Printf("❌ 加载配置失败: %v\n", err)
		os.Exit(1)
	}

	// 只初始化数据库
	if err := database.InitMySQL(); err != nil {
		fmt.Printf("❌ 数据库初始化失败: %v\n", err)
		os.Exit(1)
	}
	defer func() {
		if db := database.GetDB(); db != nil {
			if sqlDB, err := db.DB(); err == nil {
				sqlDB.Close()
			}
		}
	}()

	fmt.Println("🌱 开始初始化编号规则种子数据...")

	if err := services.SeedSequenceRulesIfNotExists(database.GetDB()); err != nil {
		fmt.Printf("❌ 初始化种子数据失败: %v\n", err)
		os.Exit(1)
	}

	fmt.Println("✅ 编号规则种子数据初始化成功！")
	fmt.Println("\n📋 已初始化的规则:")
	fmt.Println("  - ROOM: 房间编号 (RM + 日期 + 序号)")
	fmt.Println("  - ORDER: 订单编号 (ORD + 日期 + 序号)")
	fmt.Println("  - INVOICE: 发票编号 (INV + 月份 + 序号)")
	fmt.Println("  - SERIAL: 流水号 (SR + 日期 + 序号)")
}

